import { appUpdateAPI } from "@/api/app";
import silenceUpdate from "@/uni_modules/rt-uni-update/js_sdk/silence-update.js";

export const checkAppUpdate = async () => {
  return new Promise((resolve, reject) => {
    const systemInfo = uni.getSystemInfoSync();
    plus.runtime.getProperty(plus.runtime.appid as string, async (inf) => {
      let requsetVersionParams = {
        appid: plus.runtime.appid || "__UNI__EBA4BC9",
        platform: systemInfo.platform,
        editionNumber: inf.versionCode,
      };
      // console.log("systemInfo", inf);

      // 获取本地应用资源版本号

      // console.log("requsetVersionParams", requsetVersionParams);
      //获取服务器的版本号
      const res = await appUpdateAPI(requsetVersionParams);
      if (res.code === 0 && res.data) {
        // console.log("res", res);
      } else {
        resolve("");
        return;
      }

      //res.data.xxx根据后台返回的数据决定（我这里后端返回的是data），所以是res.data.data
      //判断后台返回版本号是否大于当前应用版本号 && 是否发行 （上架应用市场时一定不能弹出更新提示）
      if (
        Number(res.data.editionNumber) > Number(inf.versionCode) &&
        res.data.editionIssue == 1
      ) {
        // console.log("进入更新");
        //如果是wgt升级，并且是静默更新 （注意！！！ 如果是手动检查新版本，就不用判断静默更新，请直接跳转更新页，不然点击检查新版本后会没反应）
        if (res.data.packageType == 1 && res.data.editionSilence == 1) {
          // console.log("调用静默", res.data);
          //调用静默更新方法 传入下载地址
          resolve(res.data.editionUrl);
          // return res.data.editionUrl;
          // silenceUpdate(res.data.editionUrl);
        } else {
          //跳转更新页面 （注意！！！如果pages.json第一页的代码里有一打开就跳转其他页面的操作，下面这行代码最好写在setTimeout里面设置延时3到5秒再执行）
          // console.log("跳转更新页面");

          resolve("");
          let timer = setTimeout(() => {
            clearTimeout(timer);
            uni.navigateTo({
              url:
                "/uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update?obj=" +
                JSON.stringify(res.data),
            });
          }, 1000);
        }
      }
    });
  });
};
